<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621679639344"><span id="local-6989586621679639345"><span id="local-6989586621679639346"><span id="local-6989586621679639347"></span></span></span></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE DeriveGeneric #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE GeneralizedNewtypeDeriving #-}</span><span>
</span><span id="line-4"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Types.Flag</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-5"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Package flag</span></span><span>
</span><span id="line-6"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#PackageFlag"><span class="hs-identifier">PackageFlag</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-7"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#emptyFlag"><span class="hs-identifier">emptyFlag</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-8"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Flag name</span></span><span>
</span><span id="line-9"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier">FlagName</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-10"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#mkFlagName"><span class="hs-identifier">mkFlagName</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-11"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier">unFlagName</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-12"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Flag assignment</span></span><span>
</span><span id="line-13"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier">FlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#mkFlagAssignment"><span class="hs-identifier">mkFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#unFlagAssignment"><span class="hs-identifier">unFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#lookupFlagAssignment"><span class="hs-identifier">lookupFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#insertFlagAssignment"><span class="hs-identifier">insertFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-18"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#diffFlagAssignment"><span class="hs-identifier">diffFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-19"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#findDuplicateFlagAssignments"><span class="hs-identifier">findDuplicateFlagAssignments</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-20"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#nullFlagAssignment"><span class="hs-identifier">nullFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#showFlagValue"><span class="hs-identifier">showFlagValue</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#dispFlagAssignment"><span class="hs-identifier">dispFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#showFlagAssignment"><span class="hs-identifier">showFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-24"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#parsecFlagAssignment"><span class="hs-identifier">parsecFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-25"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#parsecFlagAssignmentNonEmpty"><span class="hs-identifier">parsecFlagAssignmentNonEmpty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-26"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Legacy formats</span></span><span>
</span><span id="line-27"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment"><span class="hs-identifier">legacyShowFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-28"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment%27"><span class="hs-identifier">legacyShowFlagAssignment'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-29"></span><span>    </span><span class="annot"><a href="Distribution.Types.Flag.html#legacyParsecFlagAssignment"><span class="hs-identifier">legacyParsecFlagAssignment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-30"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-31"></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Utils.ShortText.html"><span class="hs-identifier">Distribution.Utils.ShortText</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Utils.Generic.html"><span class="hs-identifier">Distribution.Utils.Generic</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Utils.Generic.html#lowercase"><span class="hs-identifier">lowercase</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Parsec.html"><span class="hs-identifier">Distribution.Parsec</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Pretty.html"><span class="hs-identifier">Distribution.Pretty</span></a></span><span>
</span><span id="line-39"></span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.html#"><span class="hs-identifier">Data.Map</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Map</span></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.html#"><span class="hs-identifier">Text.PrettyPrint</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Disp</span></span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.Compat.CharParsing.html"><span class="hs-identifier">Distribution.Compat.CharParsing</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">P</span></span><span>
</span><span id="line-43"></span><span>
</span><span id="line-44"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-45"></span><span class="hs-comment">-- The Flag' type</span><span>
</span><span id="line-46"></span><span>
</span><span id="line-47"></span><span class="hs-comment">-- | A flag can represent a feature to be included, or a way of linking</span><span>
</span><span id="line-48"></span><span class="hs-comment">--   a target against its dependencies, or in fact whatever you can think of.</span><span>
</span><span id="line-49"></span><span id="local-6989586621679639301"><span id="local-6989586621679639302"></span></span><span class="hs-keyword">data</span><span> </span><span id="PackageFlag"><span class="annot"><a href="Distribution.Types.Flag.html#PackageFlag"><span class="hs-identifier hs-var">PackageFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="MkPackageFlag"><span class="annot"><a href="Distribution.Types.Flag.html#MkPackageFlag"><span class="hs-identifier hs-var">MkPackageFlag</span></a></span></span><span>
</span><span id="line-50"></span><span>    </span><span class="hs-special">{</span><span> </span><span id="flagName"><span class="annot"><span class="annottext">PackageFlag -&gt; FlagName
</span><a href="Distribution.Types.Flag.html#flagName"><span class="hs-identifier hs-var hs-var">flagName</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span>
</span><span id="line-51"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="flagDescription"><span class="annot"><span class="annottext">PackageFlag -&gt; String
</span><a href="Distribution.Types.Flag.html#flagDescription"><span class="hs-identifier hs-var hs-var">flagDescription</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-52"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="flagDefault"><span class="annot"><span class="annottext">PackageFlag -&gt; Bool
</span><a href="Distribution.Types.Flag.html#flagDefault"><span class="hs-identifier hs-var hs-var">flagDefault</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-53"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="flagManual"><span class="annot"><span class="annottext">PackageFlag -&gt; Bool
</span><a href="Distribution.Types.Flag.html#flagManual"><span class="hs-identifier hs-var hs-var">flagManual</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-54"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-55"></span><span>    </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679639282"><span id="local-6989586621679639284"><span id="local-6989586621679639294"><span class="annot"><span class="annottext">Int -&gt; PackageFlag -&gt; ShowS
[PackageFlag] -&gt; ShowS
PackageFlag -&gt; String
(Int -&gt; PackageFlag -&gt; ShowS)
-&gt; (PackageFlag -&gt; String)
-&gt; ([PackageFlag] -&gt; ShowS)
-&gt; Show PackageFlag
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [PackageFlag] -&gt; ShowS
$cshowList :: [PackageFlag] -&gt; ShowS
show :: PackageFlag -&gt; String
$cshow :: PackageFlag -&gt; String
showsPrec :: Int -&gt; PackageFlag -&gt; ShowS
$cshowsPrec :: Int -&gt; PackageFlag -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639268"><span id="local-6989586621679639278"><span class="annot"><span class="annottext">PackageFlag -&gt; PackageFlag -&gt; Bool
(PackageFlag -&gt; PackageFlag -&gt; Bool)
-&gt; (PackageFlag -&gt; PackageFlag -&gt; Bool) -&gt; Eq PackageFlag
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: PackageFlag -&gt; PackageFlag -&gt; Bool
$c/= :: PackageFlag -&gt; PackageFlag -&gt; Bool
== :: PackageFlag -&gt; PackageFlag -&gt; Bool
$c== :: PackageFlag -&gt; PackageFlag -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639224"><span id="local-6989586621679639226"><span id="local-6989586621679639228"><span id="local-6989586621679639230"><span id="local-6989586621679639232"><span id="local-6989586621679639234"><span id="local-6989586621679639236"><span id="local-6989586621679639238"><span id="local-6989586621679639240"><span id="local-6989586621679639242"><span id="local-6989586621679639244"><span id="local-6989586621679639246"><span id="local-6989586621679639253"><span id="local-6989586621679639262"><span class="annot"><span class="annottext">Typeable PackageFlag
Typeable PackageFlag
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; PackageFlag -&gt; c PackageFlag)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageFlag)
-&gt; (PackageFlag -&gt; Constr)
-&gt; (PackageFlag -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageFlag))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c PackageFlag))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; PackageFlag -&gt; PackageFlag)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag)
-&gt; Data PackageFlag
PackageFlag -&gt; DataType
PackageFlag -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; PackageFlag -&gt; PackageFlag
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageFlag
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; PackageFlag -&gt; c PackageFlag
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageFlag)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c PackageFlag)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; PackageFlag -&gt; m PackageFlag
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; u
$cgmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageFlag -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageFlag -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; PackageFlag -&gt; PackageFlag
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; PackageFlag -&gt; PackageFlag
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c PackageFlag)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c PackageFlag)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageFlag)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageFlag)
dataTypeOf :: PackageFlag -&gt; DataType
$cdataTypeOf :: PackageFlag -&gt; DataType
toConstr :: PackageFlag -&gt; Constr
$ctoConstr :: PackageFlag -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageFlag
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageFlag
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; PackageFlag -&gt; c PackageFlag
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; PackageFlag -&gt; c PackageFlag
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(forall x. PackageFlag -&gt; Rep PackageFlag x)
-&gt; (forall x. Rep PackageFlag x -&gt; PackageFlag)
-&gt; Generic PackageFlag
forall x. Rep PackageFlag x -&gt; PackageFlag
forall x. PackageFlag -&gt; Rep PackageFlag x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep PackageFlag x -&gt; PackageFlag
$cfrom :: forall x. PackageFlag -&gt; Rep PackageFlag x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-56"></span><span>
</span><span id="line-57"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679639213"><span id="local-6989586621679639215"><span id="local-6989586621679639217"><span class="annot"><a href="../../binary/src/Data.Binary.Class.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#PackageFlag"><span class="hs-identifier hs-type">PackageFlag</span></a></span></span></span></span><span>
</span><span id="line-58"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679639206"><span id="local-6989586621679639208"><span class="annot"><a href="Distribution.Utils.Structured.html#Structured"><span class="hs-identifier hs-type">Structured</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#PackageFlag"><span class="hs-identifier hs-type">PackageFlag</span></a></span></span></span><span>
</span><span id="line-59"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#NFData"><span class="hs-identifier hs-type">NFData</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#PackageFlag"><span class="hs-identifier hs-type">PackageFlag</span></a></span><span> </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679639176"><span class="annot"><span class="annottext">rnf :: PackageFlag -&gt; ()
</span><a href="../../deepseq/src/Control.DeepSeq.html#rnf"><span class="hs-identifier hs-var hs-var hs-var hs-var">rnf</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageFlag -&gt; ()
forall a. (Generic a, GNFData (Rep a)) =&gt; a -&gt; ()
</span><a href="Distribution.Compat.Prelude.html#genericRnf"><span class="hs-identifier hs-var">genericRnf</span></a></span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span class="hs-comment">-- | A 'PackageFlag' initialized with default parameters.</span><span>
</span><span id="line-62"></span><span class="annot"><a href="Distribution.Types.Flag.html#emptyFlag"><span class="hs-identifier hs-type">emptyFlag</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#PackageFlag"><span class="hs-identifier hs-type">PackageFlag</span></a></span><span>
</span><span id="line-63"></span><span id="emptyFlag"><span class="annot"><span class="annottext">emptyFlag :: FlagName -&gt; PackageFlag
</span><a href="Distribution.Types.Flag.html#emptyFlag"><span class="hs-identifier hs-var hs-var">emptyFlag</span></a></span></span><span> </span><span id="local-6989586621679639173"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679639173"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">MkPackageFlag :: FlagName -&gt; String -&gt; Bool -&gt; Bool -&gt; PackageFlag
</span><a href="Distribution.Types.Flag.html#MkPackageFlag"><span class="hs-identifier hs-type">MkPackageFlag</span></a></span><span>
</span><span id="line-64"></span><span>    </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">flagName :: FlagName
</span><a href="Distribution.Types.Flag.html#flagName"><span class="hs-identifier hs-var">flagName</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679639173"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-65"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">flagDescription :: String
</span><a href="Distribution.Types.Flag.html#flagDescription"><span class="hs-identifier hs-var">flagDescription</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span>
</span><span id="line-66"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">flagDefault :: Bool
</span><a href="Distribution.Types.Flag.html#flagDefault"><span class="hs-identifier hs-var">flagDefault</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-67"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">flagManual :: Bool
</span><a href="Distribution.Types.Flag.html#flagManual"><span class="hs-identifier hs-var">flagManual</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-68"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-69"></span><span>
</span><span id="line-70"></span><span class="hs-comment">-- | A 'FlagName' is the name of a user-defined configuration flag</span><span>
</span><span id="line-71"></span><span class="hs-comment">--</span><span>
</span><span id="line-72"></span><span class="hs-comment">-- Use 'mkFlagName' and 'unFlagName' to convert from/to a 'String'.</span><span>
</span><span id="line-73"></span><span class="hs-comment">--</span><span>
</span><span id="line-74"></span><span class="hs-comment">-- This type is opaque since @Cabal-2.0@</span><span>
</span><span id="line-75"></span><span class="hs-comment">--</span><span>
</span><span id="line-76"></span><span class="hs-comment">-- @since 2.0.0.2</span><span>
</span><span id="line-77"></span><span id="local-6989586621679639171"><span id="local-6989586621679639172"></span></span><span class="hs-keyword">newtype</span><span> </span><span id="FlagName"><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-var">FlagName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="FlagName"><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-var">FlagName</span></a></span></span><span> </span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span>
</span><span id="line-78"></span><span>    </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679639163"><span id="local-6989586621679639168"><span class="annot"><span class="annottext">FlagName -&gt; FlagName -&gt; Bool
(FlagName -&gt; FlagName -&gt; Bool)
-&gt; (FlagName -&gt; FlagName -&gt; Bool) -&gt; Eq FlagName
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: FlagName -&gt; FlagName -&gt; Bool
$c/= :: FlagName -&gt; FlagName -&gt; Bool
== :: FlagName -&gt; FlagName -&gt; Bool
$c== :: FlagName -&gt; FlagName -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(forall x. FlagName -&gt; Rep FlagName x)
-&gt; (forall x. Rep FlagName x -&gt; FlagName) -&gt; Generic FlagName
forall x. Rep FlagName x -&gt; FlagName
forall x. FlagName -&gt; Rep FlagName x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep FlagName x -&gt; FlagName
$cfrom :: forall x. FlagName -&gt; Rep FlagName x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639130"><span id="local-6989586621679639134"><span id="local-6989586621679639138"><span id="local-6989586621679639142"><span id="local-6989586621679639146"><span id="local-6989586621679639150"><span id="local-6989586621679639155"><span class="annot"><span class="annottext">Eq FlagName
Eq FlagName
-&gt; (FlagName -&gt; FlagName -&gt; Ordering)
-&gt; (FlagName -&gt; FlagName -&gt; Bool)
-&gt; (FlagName -&gt; FlagName -&gt; Bool)
-&gt; (FlagName -&gt; FlagName -&gt; Bool)
-&gt; (FlagName -&gt; FlagName -&gt; Bool)
-&gt; (FlagName -&gt; FlagName -&gt; FlagName)
-&gt; (FlagName -&gt; FlagName -&gt; FlagName)
-&gt; Ord FlagName
FlagName -&gt; FlagName -&gt; Bool
FlagName -&gt; FlagName -&gt; Ordering
FlagName -&gt; FlagName -&gt; FlagName
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: FlagName -&gt; FlagName -&gt; FlagName
$cmin :: FlagName -&gt; FlagName -&gt; FlagName
max :: FlagName -&gt; FlagName -&gt; FlagName
$cmax :: FlagName -&gt; FlagName -&gt; FlagName
&gt;= :: FlagName -&gt; FlagName -&gt; Bool
$c&gt;= :: FlagName -&gt; FlagName -&gt; Bool
&gt; :: FlagName -&gt; FlagName -&gt; Bool
$c&gt; :: FlagName -&gt; FlagName -&gt; Bool
&lt;= :: FlagName -&gt; FlagName -&gt; Bool
$c&lt;= :: FlagName -&gt; FlagName -&gt; Bool
&lt; :: FlagName -&gt; FlagName -&gt; Bool
$c&lt; :: FlagName -&gt; FlagName -&gt; Bool
compare :: FlagName -&gt; FlagName -&gt; Ordering
$ccompare :: FlagName -&gt; FlagName -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639118"><span id="local-6989586621679639120"><span id="local-6989586621679639125"><span class="annot"><span class="annottext">Int -&gt; FlagName -&gt; ShowS
[FlagName] -&gt; ShowS
FlagName -&gt; String
(Int -&gt; FlagName -&gt; ShowS)
-&gt; (FlagName -&gt; String) -&gt; ([FlagName] -&gt; ShowS) -&gt; Show FlagName
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [FlagName] -&gt; ShowS
$cshowList :: [FlagName] -&gt; ShowS
show :: FlagName -&gt; String
$cshow :: FlagName -&gt; String
showsPrec :: Int -&gt; FlagName -&gt; ShowS
$cshowsPrec :: Int -&gt; FlagName -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639103"><span id="local-6989586621679639111"><span id="local-6989586621679639114"><span id="local-6989586621679639116"><span class="annot"><span class="annottext">ReadPrec [FlagName]
ReadPrec FlagName
Int -&gt; ReadS FlagName
ReadS [FlagName]
(Int -&gt; ReadS FlagName)
-&gt; ReadS [FlagName]
-&gt; ReadPrec FlagName
-&gt; ReadPrec [FlagName]
-&gt; Read FlagName
forall a.
(Int -&gt; ReadS a)
-&gt; ReadS [a] -&gt; ReadPrec a -&gt; ReadPrec [a] -&gt; Read a
readListPrec :: ReadPrec [FlagName]
$creadListPrec :: ReadPrec [FlagName]
readPrec :: ReadPrec FlagName
$creadPrec :: ReadPrec FlagName
readList :: ReadS [FlagName]
$creadList :: ReadS [FlagName]
readsPrec :: Int -&gt; ReadS FlagName
$creadsPrec :: Int -&gt; ReadS FlagName
</span><a href="../../base/src/GHC.Read.html#Read"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Read</span></a></span></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639068"><span id="local-6989586621679639070"><span id="local-6989586621679639072"><span id="local-6989586621679639074"><span id="local-6989586621679639076"><span id="local-6989586621679639078"><span id="local-6989586621679639080"><span id="local-6989586621679639082"><span id="local-6989586621679639084"><span id="local-6989586621679639086"><span id="local-6989586621679639088"><span id="local-6989586621679639090"><span id="local-6989586621679639093"><span id="local-6989586621679639097"><span class="annot"><span class="annottext">Typeable FlagName
Typeable FlagName
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; FlagName -&gt; c FlagName)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c FlagName)
-&gt; (FlagName -&gt; Constr)
-&gt; (FlagName -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c FlagName))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c FlagName))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; FlagName -&gt; FlagName)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName)
-&gt; Data FlagName
FlagName -&gt; DataType
FlagName -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; FlagName -&gt; FlagName
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c FlagName
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; FlagName -&gt; c FlagName
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c FlagName)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c FlagName)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; FlagName -&gt; m FlagName
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; u
$cgmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; FlagName -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; FlagName -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; FlagName -&gt; FlagName
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; FlagName -&gt; FlagName
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c FlagName)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c FlagName)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c FlagName)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c FlagName)
dataTypeOf :: FlagName -&gt; DataType
$cdataTypeOf :: FlagName -&gt; DataType
toConstr :: FlagName -&gt; Constr
$ctoConstr :: FlagName -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c FlagName
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c FlagName
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; FlagName -&gt; c FlagName
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; FlagName -&gt; c FlagName
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679639066"><span class="annot"><span class="annottext">FlagName -&gt; ()
(FlagName -&gt; ()) -&gt; NFData FlagName
forall a. (a -&gt; ()) -&gt; NFData a
rnf :: FlagName -&gt; ()
$crnf :: FlagName -&gt; ()
</span><a href="#local-6989586621679639066"><span class="hs-identifier hs-var hs-var hs-var hs-var">NFData</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-79"></span><span>
</span><span id="line-80"></span><span class="hs-comment">-- | Construct a 'FlagName' from a 'String'</span><span>
</span><span id="line-81"></span><span class="hs-comment">--</span><span>
</span><span id="line-82"></span><span class="hs-comment">-- 'mkFlagName' is the inverse to 'unFlagName'</span><span>
</span><span id="line-83"></span><span class="hs-comment">--</span><span>
</span><span id="line-84"></span><span class="hs-comment">-- Note: No validations are performed to ensure that the resulting</span><span>
</span><span id="line-85"></span><span class="hs-comment">-- 'FlagName' is valid</span><span>
</span><span id="line-86"></span><span class="hs-comment">--</span><span>
</span><span id="line-87"></span><span class="hs-comment">-- @since 2.0.0.2</span><span>
</span><span id="line-88"></span><span class="annot"><a href="Distribution.Types.Flag.html#mkFlagName"><span class="hs-identifier hs-type">mkFlagName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span>
</span><span id="line-89"></span><span id="mkFlagName"><span class="annot"><span class="annottext">mkFlagName :: String -&gt; FlagName
</span><a href="Distribution.Types.Flag.html#mkFlagName"><span class="hs-identifier hs-var hs-var">mkFlagName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText -&gt; FlagName
</span><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-var">FlagName</span></a></span><span> </span><span class="annot"><span class="annottext">(ShortText -&gt; FlagName)
-&gt; (String -&gt; ShortText) -&gt; String -&gt; FlagName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShortText
</span><a href="Distribution.Utils.ShortText.html#toShortText"><span class="hs-identifier hs-var">toShortText</span></a></span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span class="hs-comment">-- | 'mkFlagName'</span><span>
</span><span id="line-92"></span><span class="hs-comment">--</span><span>
</span><span id="line-93"></span><span class="hs-comment">-- @since 2.0.0.2</span><span>
</span><span id="line-94"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../base/src/Data.String.html#IsString"><span class="hs-identifier hs-type">IsString</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-95"></span><span>    </span><span id="local-6989586621679639057"><span class="annot"><span class="annottext">fromString :: String -&gt; FlagName
</span><a href="../../base/src/Data.String.html#fromString"><span class="hs-identifier hs-var hs-var hs-var hs-var">fromString</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; FlagName
</span><a href="Distribution.Types.Flag.html#mkFlagName"><span class="hs-identifier hs-var">mkFlagName</span></a></span><span>
</span><span id="line-96"></span><span>
</span><span id="line-97"></span><span class="hs-comment">-- | Convert 'FlagName' to 'String'</span><span>
</span><span id="line-98"></span><span class="hs-comment">--</span><span>
</span><span id="line-99"></span><span class="hs-comment">-- @since 2.0.0.2</span><span>
</span><span id="line-100"></span><span class="annot"><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-type">unFlagName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-101"></span><span id="unFlagName"><span class="annot"><span class="annottext">unFlagName :: FlagName -&gt; String
</span><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-var hs-var">unFlagName</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span id="local-6989586621679639056"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679639056"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText -&gt; String
</span><a href="Distribution.Utils.ShortText.html#fromShortText"><span class="hs-identifier hs-var">fromShortText</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679639056"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-102"></span><span>
</span><span id="line-103"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679639049"><span id="local-6989586621679639051"><span id="local-6989586621679639053"><span class="annot"><a href="../../binary/src/Data.Binary.Class.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span></span></span></span><span>
</span><span id="line-104"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679639043"><span id="local-6989586621679639045"><span class="annot"><a href="Distribution.Utils.Structured.html#Structured"><span class="hs-identifier hs-type">Structured</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span></span></span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679639040"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-107"></span><span>    </span><span id="local-6989586621679639038"><span class="annot"><span class="annottext">pretty :: FlagName -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier hs-var">Disp.text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; (FlagName -&gt; String) -&gt; FlagName -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName -&gt; String
</span><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-var">unFlagName</span></a></span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-110"></span><span>    </span><span class="hs-comment">-- Note:  we don't check that FlagName doesn't have leading dash,</span><span>
</span><span id="line-111"></span><span>    </span><span class="hs-comment">-- cabal check will do that.</span><span>
</span><span id="line-112"></span><span>    </span><span id="local-6989586621679639020"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m FlagName
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; FlagName
</span><a href="Distribution.Types.Flag.html#mkFlagName"><span class="hs-identifier hs-var">mkFlagName</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; FlagName) -&gt; ShowS -&gt; String -&gt; FlagName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
</span><a href="Distribution.Utils.Generic.html#lowercase"><span class="hs-identifier hs-var">lowercase</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; FlagName) -&gt; m String -&gt; m FlagName
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m String
</span><a href="#local-6989586621679639017"><span class="hs-identifier hs-var">parsec'</span></a></span><span>
</span><span id="line-113"></span><span>      </span><span class="hs-keyword">where</span><span>
</span><span id="line-114"></span><span>        </span><span id="local-6989586621679639017"><span class="annot"><span class="annottext">parsec' :: m String
</span><a href="#local-6989586621679639017"><span class="hs-identifier hs-var hs-var">parsec'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">:</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; ShowS) -&gt; m Char -&gt; m ShowS
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m Char
</span><a href="#local-6989586621679639014"><span class="hs-identifier hs-var">lead</span></a></span><span> </span><span class="annot"><span class="annottext">m ShowS -&gt; m String -&gt; m String
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m String
</span><a href="#local-6989586621679639013"><span class="hs-identifier hs-var">rest</span></a></span><span>
</span><span id="line-115"></span><span>        </span><span id="local-6989586621679639014"><span class="annot"><span class="annottext">lead :: m Char
</span><a href="#local-6989586621679639014"><span class="hs-identifier hs-var hs-var">lead</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; (Char -&gt; Bool) -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#satisfy"><span class="hs-identifier hs-var">P.satisfy</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679639009"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639009"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>  </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAlphaNum"><span class="hs-identifier hs-var">isAlphaNum</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639009"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639009"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span class="hs-special">)</span><span>
</span><span id="line-116"></span><span>        </span><span id="local-6989586621679639013"><span class="annot"><span class="annottext">rest :: m String
</span><a href="#local-6989586621679639013"><span class="hs-identifier hs-var hs-var">rest</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; m String
forall (m :: * -&gt; *). CharParsing m =&gt; (Char -&gt; Bool) -&gt; m String
</span><a href="Distribution.Compat.CharParsing.html#munch"><span class="hs-identifier hs-var">P.munch</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679639002"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639002"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAlphaNum"><span class="hs-identifier hs-var">isAlphaNum</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639002"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span>  </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639002"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679639002"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span class="hs-special">)</span><span>
</span><span id="line-117"></span><span>
</span><span id="line-118"></span><span class="hs-comment">-- | A 'FlagAssignment' is a total or partial mapping of 'FlagName's to</span><span>
</span><span id="line-119"></span><span class="hs-comment">-- 'Bool' flag values. It represents the flags chosen by the user or</span><span>
</span><span id="line-120"></span><span class="hs-comment">-- discovered during configuration. For example @--flags=foo --flags=-bar@</span><span>
</span><span id="line-121"></span><span class="hs-comment">-- becomes @[(&quot;foo&quot;, True), (&quot;bar&quot;, False)]@</span><span>
</span><span id="line-122"></span><span class="hs-comment">--</span><span>
</span><span id="line-123"></span><span class="hs-comment">-- TODO: Why we record the multiplicity of the flag?</span><span>
</span><span id="line-124"></span><span class="hs-comment">--</span><span>
</span><span id="line-125"></span><span id="local-6989586621679639000"><span id="local-6989586621679639001"></span></span><span class="hs-keyword">newtype</span><span> </span><span id="FlagAssignment"><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span></span><span>
</span><span id="line-126"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="FlagAssignment"><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getFlagAssignment"><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.Internal.html#Map"><span class="hs-identifier hs-type">Map.Map</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-127"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638983"><span id="local-6989586621679638989"><span id="local-6989586621679638996"><span class="annot"><span class="annottext">Get FlagAssignment
[FlagAssignment] -&gt; Put
FlagAssignment -&gt; Put
(FlagAssignment -&gt; Put)
-&gt; Get FlagAssignment
-&gt; ([FlagAssignment] -&gt; Put)
-&gt; Binary FlagAssignment
forall t. (t -&gt; Put) -&gt; Get t -&gt; ([t] -&gt; Put) -&gt; Binary t
putList :: [FlagAssignment] -&gt; Put
$cputList :: [FlagAssignment] -&gt; Put
get :: Get FlagAssignment
$cget :: Get FlagAssignment
put :: FlagAssignment -&gt; Put
$cput :: FlagAssignment -&gt; Put
</span><a href="#local-6989586621679638983"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Binary</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(forall x. FlagAssignment -&gt; Rep FlagAssignment x)
-&gt; (forall x. Rep FlagAssignment x -&gt; FlagAssignment)
-&gt; Generic FlagAssignment
forall x. Rep FlagAssignment x -&gt; FlagAssignment
forall x. FlagAssignment -&gt; Rep FlagAssignment x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep FlagAssignment x -&gt; FlagAssignment
$cfrom :: forall x. FlagAssignment -&gt; Rep FlagAssignment x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679638966"><span class="annot"><span class="annottext">FlagAssignment -&gt; ()
(FlagAssignment -&gt; ()) -&gt; NFData FlagAssignment
forall a. (a -&gt; ()) -&gt; NFData a
rnf :: FlagAssignment -&gt; ()
$crnf :: FlagAssignment -&gt; ()
</span><a href="#local-6989586621679638966"><span class="hs-identifier hs-var hs-var hs-var hs-var">NFData</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-128"></span><span>
</span><span id="line-129"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638950"><span id="local-6989586621679638952"><span class="annot"><a href="Distribution.Utils.Structured.html#Structured"><span class="hs-identifier hs-type">Structured</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638947"><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-132"></span><span>  </span><span id="local-6989586621679638939"><span class="annot"><span class="annottext">== :: FlagAssignment -&gt; FlagAssignment -&gt; Bool
</span><span class="hs-operator hs-var hs-var hs-var hs-var">(==)</span></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638938"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638938"><span class="hs-identifier hs-var">m1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638937"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638937"><span class="hs-identifier hs-var">m2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-133"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool)
-&gt; Map FlagName (Int, Bool) -&gt; Map FlagName Bool
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Bool
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638938"><span class="hs-identifier hs-var">m1</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName Bool -&gt; Map FlagName Bool -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool)
-&gt; Map FlagName (Int, Bool) -&gt; Map FlagName Bool
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Bool
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638937"><span class="hs-identifier hs-var">m2</span></a></span><span>
</span><span id="line-134"></span><span>
</span><span id="line-135"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638922"><span id="local-6989586621679638924"><span id="local-6989586621679638926"><span id="local-6989586621679638928"><span id="local-6989586621679638930"><span id="local-6989586621679638932"><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-136"></span><span>  </span><span id="local-6989586621679638915"><span class="annot"><span class="annottext">compare :: FlagAssignment -&gt; FlagAssignment -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var">compare</span></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638913"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638913"><span class="hs-identifier hs-var">m1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638912"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638912"><span class="hs-identifier hs-var">m2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool)
-&gt; Map FlagName (Int, Bool) -&gt; Map FlagName Bool
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Bool
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638913"><span class="hs-identifier hs-var">m1</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName Bool -&gt; Map FlagName Bool -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool)
-&gt; Map FlagName (Int, Bool) -&gt; Map FlagName Bool
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Bool
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638912"><span class="hs-identifier hs-var">m2</span></a></span><span>
</span><span id="line-138"></span><span>
</span><span id="line-139"></span><span class="hs-comment">-- | Combines pairs of values contained in the 'FlagAssignment' Map.</span><span>
</span><span id="line-140"></span><span class="hs-comment">--</span><span>
</span><span id="line-141"></span><span class="hs-comment">-- The last flag specified takes precedence, and we record the number</span><span>
</span><span id="line-142"></span><span class="hs-comment">-- of times we have seen the flag.</span><span>
</span><span id="line-143"></span><span class="hs-comment">--</span><span>
</span><span id="line-144"></span><span class="annot"><a href="Distribution.Types.Flag.html#combineFlagValues"><span class="hs-identifier hs-type">combineFlagValues</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span>
</span><span id="line-145"></span><span id="combineFlagValues"><span class="annot"><span class="annottext">combineFlagValues :: (Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool)
</span><a href="Distribution.Types.Flag.html#combineFlagValues"><span class="hs-identifier hs-var hs-var">combineFlagValues</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638910"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638910"><span class="hs-identifier hs-var">c1</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638909"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638909"><span class="hs-identifier hs-var">c2</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679638908"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679638908"><span class="hs-identifier hs-var">b2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638910"><span class="hs-identifier hs-var">c1</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638909"><span class="hs-identifier hs-var">c2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679638908"><span class="hs-identifier hs-var">b2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-146"></span><span>
</span><span id="line-147"></span><span class="hs-comment">-- The 'Semigroup' instance currently is right-biased.</span><span>
</span><span id="line-148"></span><span class="hs-comment">--</span><span>
</span><span id="line-149"></span><span class="hs-comment">-- If duplicate flags are specified, we want the last flag specified to</span><span>
</span><span id="line-150"></span><span class="hs-comment">-- take precedence and we want to know how many times the flag has been</span><span>
</span><span id="line-151"></span><span class="hs-comment">-- specified so that we have the option of warning the user about</span><span>
</span><span id="line-152"></span><span class="hs-comment">-- supplying duplicate flags.</span><span>
</span><span id="line-153"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638902"><span id="local-6989586621679638904"><span class="annot"><a href="../../base/src/GHC.Base.html#Semigroup"><span class="hs-identifier hs-type">Semigroup</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-154"></span><span>  </span><span id="local-6989586621679638899"><span class="annot"><span class="annottext">&lt;&gt; :: FlagAssignment -&gt; FlagAssignment -&gt; FlagAssignment
</span><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator hs-var hs-var hs-var hs-var">(&lt;&gt;)</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638898"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638898"><span class="hs-identifier hs-var">m1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638897"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638897"><span class="hs-identifier hs-var">m2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-155"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool))
-&gt; Map FlagName (Int, Bool)
-&gt; Map FlagName (Int, Bool)
-&gt; Map FlagName (Int, Bool)
forall k a. Ord k =&gt; (a -&gt; a -&gt; a) -&gt; Map k a -&gt; Map k a -&gt; Map k a
</span><a href="../../containers/src/Data.Map.Internal.html#unionWith"><span class="hs-identifier hs-var">Map.unionWith</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool)
</span><a href="Distribution.Types.Flag.html#combineFlagValues"><span class="hs-identifier hs-var">combineFlagValues</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638898"><span class="hs-identifier hs-var">m1</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638897"><span class="hs-identifier hs-var">m2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span>
</span><span id="line-157"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638890"><span class="annot"><a href="../../base/src/GHC.Base.html#Monoid"><span class="hs-identifier hs-type">Monoid</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-158"></span><span>  </span><span id="local-6989586621679638888"><span class="annot"><span class="annottext">mempty :: FlagAssignment
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var hs-var hs-var hs-var">mempty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
forall k a. Map k a
</span><a href="../../containers/src/Data.Map.Internal.html#empty"><span class="hs-identifier hs-var">Map.empty</span></a></span><span>
</span><span id="line-159"></span><span>  </span><span id="local-6989586621679638885"><span class="annot"><span class="annottext">mappend :: FlagAssignment -&gt; FlagAssignment -&gt; FlagAssignment
</span><a href="../../base/src/GHC.Base.html#mappend"><span class="hs-identifier hs-var hs-var hs-var hs-var">mappend</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; FlagAssignment -&gt; FlagAssignment
forall a. Semigroup a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator hs-var">(&lt;&gt;)</span></a></span><span>
</span><span id="line-160"></span><span>
</span><span id="line-161"></span><span class="hs-comment">-- | Construct a 'FlagAssignment' from a list of flag/value pairs.</span><span>
</span><span id="line-162"></span><span class="hs-comment">--</span><span>
</span><span id="line-163"></span><span class="hs-comment">-- If duplicate flags occur in the input list, the later entries</span><span>
</span><span id="line-164"></span><span class="hs-comment">-- in the list will take precedence.</span><span>
</span><span id="line-165"></span><span class="hs-comment">--</span><span>
</span><span id="line-166"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-167"></span><span class="annot"><a href="Distribution.Types.Flag.html#mkFlagAssignment"><span class="hs-identifier hs-type">mkFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span>
</span><span id="line-168"></span><span id="mkFlagAssignment"><span class="annot"><span class="annottext">mkFlagAssignment :: [(FlagName, Bool)] -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#mkFlagAssignment"><span class="hs-identifier hs-var hs-var">mkFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-169"></span><span>  </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; FlagAssignment)
-&gt; ([(FlagName, Bool)] -&gt; Map FlagName (Int, Bool))
-&gt; [(FlagName, Bool)]
-&gt; FlagAssignment
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span>
</span><span id="line-170"></span><span>  </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool))
-&gt; [(FlagName, (Int, Bool))] -&gt; Map FlagName (Int, Bool)
forall k a. Ord k =&gt; (a -&gt; a -&gt; a) -&gt; [(k, a)] -&gt; Map k a
</span><a href="../../containers/src/Data.Map.Internal.html#fromListWith"><span class="hs-identifier hs-var">Map.fromListWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool))
-&gt; (Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool)
</span><a href="Distribution.Types.Flag.html#combineFlagValues"><span class="hs-identifier hs-var">combineFlagValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([(FlagName, (Int, Bool))] -&gt; Map FlagName (Int, Bool))
-&gt; ([(FlagName, Bool)] -&gt; [(FlagName, (Int, Bool))])
-&gt; [(FlagName, Bool)]
-&gt; Map FlagName (Int, Bool)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">((FlagName, Bool) -&gt; (FlagName, (Int, Bool)))
-&gt; [(FlagName, Bool)] -&gt; [(FlagName, (Int, Bool))]
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bool -&gt; (Int, Bool))
-&gt; (FlagName, Bool) -&gt; (FlagName, (Int, Bool))
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679638882"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679638882"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679638882"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-171"></span><span>
</span><span id="line-172"></span><span class="hs-comment">-- | Deconstruct a 'FlagAssignment' into a list of flag/value pairs.</span><span>
</span><span id="line-173"></span><span class="hs-comment">--</span><span>
</span><span id="line-174"></span><span class="hs-comment">-- @ 'null' ('findDuplicateFlagAssignments' fa) ==&gt; ('mkFlagAssignment' . 'unFlagAssignment') fa == fa @</span><span>
</span><span id="line-175"></span><span class="hs-comment">--</span><span>
</span><span id="line-176"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-177"></span><span class="annot"><a href="Distribution.Types.Flag.html#unFlagAssignment"><span class="hs-identifier hs-type">unFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-178"></span><span id="unFlagAssignment"><span class="annot"><span class="annottext">unFlagAssignment :: FlagAssignment -&gt; [(FlagName, Bool)]
</span><a href="Distribution.Types.Flag.html#unFlagAssignment"><span class="hs-identifier hs-var hs-var">unFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((FlagName, (Int, Bool)) -&gt; (FlagName, Bool))
-&gt; [(FlagName, (Int, Bool))] -&gt; [(FlagName, Bool)]
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool)
-&gt; (FlagName, (Int, Bool)) -&gt; (FlagName, Bool)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Bool
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([(FlagName, (Int, Bool))] -&gt; [(FlagName, Bool)])
-&gt; (FlagAssignment -&gt; [(FlagName, (Int, Bool))])
-&gt; FlagAssignment
-&gt; [(FlagName, Bool)]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; [(FlagName, (Int, Bool))]
forall k a. Map k a -&gt; [(k, a)]
</span><a href="../../containers/src/Data.Map.Internal.html#toList"><span class="hs-identifier hs-var">Map.toList</span></a></span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; [(FlagName, (Int, Bool))])
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; [(FlagName, (Int, Bool))]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span>
</span><span id="line-179"></span><span>
</span><span id="line-180"></span><span class="hs-comment">-- | Test whether 'FlagAssignment' is empty.</span><span>
</span><span id="line-181"></span><span class="hs-comment">--</span><span>
</span><span id="line-182"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-183"></span><span class="annot"><a href="Distribution.Types.Flag.html#nullFlagAssignment"><span class="hs-identifier hs-type">nullFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-184"></span><span id="nullFlagAssignment"><span class="annot"><span class="annottext">nullFlagAssignment :: FlagAssignment -&gt; Bool
</span><a href="Distribution.Types.Flag.html#nullFlagAssignment"><span class="hs-identifier hs-var hs-var">nullFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; Bool
forall k a. Map k a -&gt; Bool
</span><a href="../../containers/src/Data.Map.Internal.html#null"><span class="hs-identifier hs-var">Map.null</span></a></span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; Bool)
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span>
</span><span id="line-185"></span><span>
</span><span id="line-186"></span><span class="hs-comment">-- | Lookup the value for a flag</span><span>
</span><span id="line-187"></span><span class="hs-comment">--</span><span>
</span><span id="line-188"></span><span class="hs-comment">-- Returns 'Nothing' if the flag isn't contained in the 'FlagAssignment'.</span><span>
</span><span id="line-189"></span><span class="hs-comment">--</span><span>
</span><span id="line-190"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-191"></span><span class="annot"><a href="Distribution.Types.Flag.html#lookupFlagAssignment"><span class="hs-identifier hs-type">lookupFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-192"></span><span id="lookupFlagAssignment"><span class="annot"><span class="annottext">lookupFlagAssignment :: FlagName -&gt; FlagAssignment -&gt; Maybe Bool
</span><a href="Distribution.Types.Flag.html#lookupFlagAssignment"><span class="hs-identifier hs-var hs-var">lookupFlagAssignment</span></a></span></span><span> </span><span id="local-6989586621679638879"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638879"><span class="hs-identifier hs-var">fn</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool) -&gt; Maybe (Int, Bool) -&gt; Maybe Bool
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Bool
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe (Int, Bool) -&gt; Maybe Bool)
-&gt; (FlagAssignment -&gt; Maybe (Int, Bool))
-&gt; FlagAssignment
-&gt; Maybe Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName -&gt; Map FlagName (Int, Bool) -&gt; Maybe (Int, Bool)
forall k a. Ord k =&gt; k -&gt; Map k a -&gt; Maybe a
</span><a href="../../containers/src/Data.Map.Internal.html#lookup"><span class="hs-identifier hs-var">Map.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638879"><span class="hs-identifier hs-var">fn</span></a></span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; Maybe (Int, Bool))
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; Maybe (Int, Bool)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span>
</span><span id="line-193"></span><span>
</span><span id="line-194"></span><span class="hs-comment">-- | Insert or update the boolean value of a flag.</span><span>
</span><span id="line-195"></span><span class="hs-comment">--</span><span>
</span><span id="line-196"></span><span class="hs-comment">-- If the flag is already present in the 'FlagAssigment', the</span><span>
</span><span id="line-197"></span><span class="hs-comment">-- value will be updated and the fact that multiple values have</span><span>
</span><span id="line-198"></span><span class="hs-comment">-- been provided for that flag will be recorded so that a</span><span>
</span><span id="line-199"></span><span class="hs-comment">-- warning can be generated later on.</span><span>
</span><span id="line-200"></span><span class="hs-comment">--</span><span>
</span><span id="line-201"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-202"></span><span class="annot"><a href="Distribution.Types.Flag.html#insertFlagAssignment"><span class="hs-identifier hs-type">insertFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span>
</span><span id="line-203"></span><span class="hs-comment">-- TODO: this currently just shadows prior values for an existing</span><span>
</span><span id="line-204"></span><span class="hs-comment">-- flag; rather than enforcing uniqueness at construction, it's</span><span>
</span><span id="line-205"></span><span class="hs-comment">-- verified later on via `D.C.Dependency.configuredPackageProblems`</span><span>
</span><span id="line-206"></span><span id="insertFlagAssignment"><span class="annot"><span class="annottext">insertFlagAssignment :: FlagName -&gt; Bool -&gt; FlagAssignment -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#insertFlagAssignment"><span class="hs-identifier hs-var hs-var">insertFlagAssignment</span></a></span></span><span> </span><span id="local-6989586621679638877"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638877"><span class="hs-identifier hs-var">flag</span></a></span></span><span> </span><span id="local-6989586621679638876"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679638876"><span class="hs-identifier hs-var">val</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-207"></span><span>  </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; FlagAssignment)
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; FlagAssignment
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span>
</span><span id="line-208"></span><span>  </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool))
-&gt; FlagName
-&gt; (Int, Bool)
-&gt; Map FlagName (Int, Bool)
-&gt; Map FlagName (Int, Bool)
forall k a. Ord k =&gt; (a -&gt; a -&gt; a) -&gt; k -&gt; a -&gt; Map k a -&gt; Map k a
</span><a href="../../containers/src/Data.Map.Internal.html#insertWith"><span class="hs-identifier hs-var">Map.insertWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool))
-&gt; (Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; (Int, Bool) -&gt; (Int, Bool)
</span><a href="Distribution.Types.Flag.html#combineFlagValues"><span class="hs-identifier hs-var">combineFlagValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638877"><span class="hs-identifier hs-var">flag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679638876"><span class="hs-identifier hs-var">val</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; Map FlagName (Int, Bool))
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; Map FlagName (Int, Bool)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span>  </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span>
</span><span id="line-209"></span><span>
</span><span id="line-210"></span><span class="hs-comment">-- | Remove all flag-assignments from the first 'FlagAssignment' that</span><span>
</span><span id="line-211"></span><span class="hs-comment">-- are contained in the second 'FlagAssignment'</span><span>
</span><span id="line-212"></span><span class="hs-comment">--</span><span>
</span><span id="line-213"></span><span class="hs-comment">-- NB/TODO: This currently only removes flag assignments which also</span><span>
</span><span id="line-214"></span><span class="hs-comment">-- match the value assignment! We should review the code which uses</span><span>
</span><span id="line-215"></span><span class="hs-comment">-- this operation to figure out if this it's not enough to only</span><span>
</span><span id="line-216"></span><span class="hs-comment">-- compare the flagnames without the values.</span><span>
</span><span id="line-217"></span><span class="hs-comment">--</span><span>
</span><span id="line-218"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-219"></span><span class="annot"><a href="Distribution.Types.Flag.html#diffFlagAssignment"><span class="hs-identifier hs-type">diffFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span>
</span><span id="line-220"></span><span id="diffFlagAssignment"><span class="annot"><span class="annottext">diffFlagAssignment :: FlagAssignment -&gt; FlagAssignment -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#diffFlagAssignment"><span class="hs-identifier hs-var hs-var">diffFlagAssignment</span></a></span></span><span> </span><span id="local-6989586621679638874"><span class="annot"><span class="annottext">FlagAssignment
</span><a href="#local-6989586621679638874"><span class="hs-identifier hs-var">fa1</span></a></span></span><span> </span><span id="local-6989586621679638873"><span class="annot"><span class="annottext">FlagAssignment
</span><a href="#local-6989586621679638873"><span class="hs-identifier hs-var">fa2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span><span>
</span><span id="line-221"></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
-&gt; Map FlagName (Int, Bool) -&gt; Map FlagName (Int, Bool)
forall k a b. Ord k =&gt; Map k a -&gt; Map k b -&gt; Map k a
</span><a href="../../containers/src/Data.Map.Internal.html#difference"><span class="hs-identifier hs-var">Map.difference</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment
</span><a href="#local-6989586621679638874"><span class="hs-identifier hs-var">fa1</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment
</span><a href="#local-6989586621679638873"><span class="hs-identifier hs-var">fa2</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-222"></span><span>
</span><span id="line-223"></span><span class="hs-comment">-- | Find the 'FlagName's that have been listed more than once.</span><span>
</span><span id="line-224"></span><span class="hs-comment">--</span><span>
</span><span id="line-225"></span><span class="hs-comment">-- @since 2.2.0</span><span>
</span><span id="line-226"></span><span class="annot"><a href="Distribution.Types.Flag.html#findDuplicateFlagAssignments"><span class="hs-identifier hs-type">findDuplicateFlagAssignments</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-227"></span><span id="findDuplicateFlagAssignments"><span class="annot"><span class="annottext">findDuplicateFlagAssignments :: FlagAssignment -&gt; [FlagName]
</span><a href="Distribution.Types.Flag.html#findDuplicateFlagAssignments"><span class="hs-identifier hs-var hs-var">findDuplicateFlagAssignments</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-228"></span><span>  </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; [FlagName]
forall k a. Map k a -&gt; [k]
</span><a href="../../containers/src/Data.Map.Internal.html#keys"><span class="hs-identifier hs-var">Map.keys</span></a></span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; [FlagName])
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; [FlagName]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">((Int, Bool) -&gt; Bool)
-&gt; Map FlagName (Int, Bool) -&gt; Map FlagName (Int, Bool)
forall a k. (a -&gt; Bool) -&gt; Map k a -&gt; Map k a
</span><a href="../../containers/src/Data.Map.Internal.html#filter"><span class="hs-identifier hs-var">Map.filter</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Bool) -&gt; ((Int, Bool) -&gt; Int) -&gt; (Int, Bool) -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(Int, Bool) -&gt; Int
forall a b. (a, b) -&gt; a
</span><a href="../../base/src/Data.Tuple.html#fst"><span class="hs-identifier hs-var">fst</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Map FlagName (Int, Bool) -&gt; Map FlagName (Int, Bool))
-&gt; (FlagAssignment -&gt; Map FlagName (Int, Bool))
-&gt; FlagAssignment
-&gt; Map FlagName (Int, Bool)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Map FlagName (Int, Bool)
</span><a href="Distribution.Types.Flag.html#getFlagAssignment"><span class="hs-identifier hs-var hs-var">getFlagAssignment</span></a></span><span>
</span><span id="line-229"></span><span>
</span><span id="line-230"></span><span class="hs-comment">-- | @since 2.2.0</span><span>
</span><span id="line-231"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638862"><span id="local-6989586621679638864"><span id="local-6989586621679638866"><span class="annot"><a href="../../base/src/GHC.Read.html#Read"><span class="hs-identifier hs-type">Read</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-232"></span><span>    </span><span id="local-6989586621679638852"><span class="annot"><span class="annottext">readsPrec :: Int -&gt; ReadS FlagAssignment
</span><a href="../../base/src/GHC.Read.html#readsPrec"><span class="hs-identifier hs-var hs-var hs-var hs-var">readsPrec</span></a></span></span><span> </span><span id="local-6989586621679638850"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638850"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679638849"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679638849"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Map FlagName (Int, Bool) -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-var">FlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638848"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679638847"><span class="hs-identifier hs-var">rest</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638848"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638848"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679638847"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679638847"><span class="hs-identifier hs-var">rest</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ReadS (Map FlagName (Int, Bool))
forall a. Read a =&gt; Int -&gt; ReadS a
</span><a href="../../base/src/GHC.Read.html#readsPrec"><span class="hs-identifier hs-var">readsPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638850"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679638849"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span class="hs-comment">-- | @since 2.2.0</span><span>
</span><span id="line-235"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638842"><span id="local-6989586621679638844"><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-236"></span><span>    </span><span id="local-6989586621679638833"><span class="annot"><span class="annottext">showsPrec :: Int -&gt; FlagAssignment -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showsPrec"><span class="hs-identifier hs-var hs-var hs-var hs-var">showsPrec</span></a></span></span><span> </span><span id="local-6989586621679638831"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638831"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span id="local-6989586621679638830"><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638830"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Map FlagName (Int, Bool) -&gt; ShowS
forall a. Show a =&gt; Int -&gt; a -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showsPrec"><span class="hs-identifier hs-var">showsPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679638831"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Map FlagName (Int, Bool)
</span><a href="#local-6989586621679638830"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-237"></span><span>
</span><span id="line-238"></span><span class="hs-comment">-- | String representation of a flag-value pair.</span><span>
</span><span id="line-239"></span><span class="annot"><a href="Distribution.Types.Flag.html#showFlagValue"><span class="hs-identifier hs-type">showFlagValue</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-240"></span><span id="showFlagValue"><span class="annot"><span class="annottext">showFlagValue :: (FlagName, Bool) -&gt; String
</span><a href="Distribution.Types.Flag.html#showFlagValue"><span class="hs-identifier hs-var hs-var">showFlagValue</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638829"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638829"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">FlagName -&gt; String
</span><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-var">unFlagName</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638829"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-241"></span><span class="annot"><a href="Distribution.Types.Flag.html#showFlagValue"><span class="hs-identifier hs-var">showFlagValue</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638828"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638828"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">FlagName -&gt; String
</span><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-var">unFlagName</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638828"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-242"></span><span>
</span><span id="line-243"></span><span class="hs-comment">-- | @since 3.4.0.0</span><span>
</span><span id="line-244"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679638825"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-245"></span><span>    </span><span id="local-6989586621679638824"><span class="annot"><span class="annottext">pretty :: FlagAssignment -&gt; Doc
</span><a href="#local-6989586621679638824"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Doc
</span><a href="Distribution.Types.Flag.html#dispFlagAssignment"><span class="hs-identifier hs-var">dispFlagAssignment</span></a></span><span>
</span><span id="line-246"></span><span>
</span><span id="line-247"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-248"></span><span class="hs-comment">--</span><span>
</span><span id="line-249"></span><span class="hs-comment">-- &gt;&gt;&gt; simpleParsec &quot;&quot; :: Maybe FlagAssignment</span><span>
</span><span id="line-250"></span><span class="hs-comment">-- Just (fromList [])</span><span>
</span><span id="line-251"></span><span class="hs-comment">--</span><span>
</span><span id="line-252"></span><span class="hs-comment">-- &gt;&gt;&gt; simpleParsec &quot;+foo -bar&quot; :: Maybe FlagAssignment</span><span>
</span><span id="line-253"></span><span class="hs-comment">-- Just (fromList [(FlagName &quot;bar&quot;,(1,False)),(FlagName &quot;foo&quot;,(1,True))])</span><span>
</span><span id="line-254"></span><span class="hs-comment">--</span><span>
</span><span id="line-255"></span><span class="hs-comment">-- &gt;&gt;&gt; simpleParsec &quot;-none -any&quot; :: Maybe FlagAssignment</span><span>
</span><span id="line-256"></span><span class="hs-comment">-- Just (fromList [(FlagName &quot;any&quot;,(1,False)),(FlagName &quot;none&quot;,(1,False))])</span><span>
</span><span id="line-257"></span><span class="hs-comment">--</span><span>
</span><span id="line-258"></span><span class="hs-comment">-- &gt;&gt;&gt; simpleParsec &quot;+foo -foo +foo +foo&quot; :: Maybe FlagAssignment</span><span>
</span><span id="line-259"></span><span class="hs-comment">-- Just (fromList [(FlagName &quot;foo&quot;,(4,True))])</span><span>
</span><span id="line-260"></span><span class="hs-comment">--</span><span>
</span><span id="line-261"></span><span class="hs-comment">-- &gt;&gt;&gt; simpleParsec &quot;+foo -bar baz&quot; :: Maybe FlagAssignment</span><span>
</span><span id="line-262"></span><span class="hs-comment">-- Nothing</span><span>
</span><span id="line-263"></span><span class="hs-comment">--</span><span>
</span><span id="line-264"></span><span class="hs-comment">-- @since 3.4.0.0</span><span>
</span><span id="line-265"></span><span class="hs-comment">--</span><span>
</span><span id="line-266"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-267"></span><span>    </span><span id="local-6989586621679638819"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m FlagAssignment
</span><a href="#local-6989586621679638819"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">m FlagAssignment
forall (m :: * -&gt; *). CabalParsing m =&gt; m FlagAssignment
</span><a href="Distribution.Types.Flag.html#parsecFlagAssignment"><span class="hs-identifier hs-var">parsecFlagAssignment</span></a></span><span>
</span><span id="line-268"></span><span>
</span><span id="line-269"></span><span class="hs-comment">-- | Pretty-prints a flag assignment.</span><span>
</span><span id="line-270"></span><span class="annot"><a href="Distribution.Types.Flag.html#dispFlagAssignment"><span class="hs-identifier hs-type">dispFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#Doc"><span class="hs-identifier hs-type">Disp.Doc</span></a></span><span>
</span><span id="line-271"></span><span id="dispFlagAssignment"><span class="annot"><span class="annottext">dispFlagAssignment :: FlagAssignment -&gt; Doc
</span><a href="Distribution.Types.Flag.html#dispFlagAssignment"><span class="hs-identifier hs-var hs-var">dispFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#hsep"><span class="hs-identifier hs-var">Disp.hsep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc)
-&gt; (FlagAssignment -&gt; [Doc]) -&gt; FlagAssignment -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">((FlagName, Bool) -&gt; Doc) -&gt; [(FlagName, Bool)] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier hs-var">Disp.text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc)
-&gt; ((FlagName, Bool) -&gt; String) -&gt; (FlagName, Bool) -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; String
</span><a href="Distribution.Types.Flag.html#showFlagValue"><span class="hs-identifier hs-var">showFlagValue</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([(FlagName, Bool)] -&gt; [Doc])
-&gt; (FlagAssignment -&gt; [(FlagName, Bool)])
-&gt; FlagAssignment
-&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; [(FlagName, Bool)]
</span><a href="Distribution.Types.Flag.html#unFlagAssignment"><span class="hs-identifier hs-var">unFlagAssignment</span></a></span><span>
</span><span id="line-272"></span><span>
</span><span id="line-273"></span><span class="hs-comment">-- | Parses a flag assignment.</span><span>
</span><span id="line-274"></span><span id="local-6989586621679638817"><span class="annot"><a href="Distribution.Types.Flag.html#parsecFlagAssignment"><span class="hs-identifier hs-type">parsecFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#CabalParsing"><span class="hs-identifier hs-type">CabalParsing</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679638817"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679638817"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span><span>
</span><span id="line-275"></span><span id="parsecFlagAssignment"><span class="annot"><span class="annottext">parsecFlagAssignment :: forall (m :: * -&gt; *). CabalParsing m =&gt; m FlagAssignment
</span><a href="Distribution.Types.Flag.html#parsecFlagAssignment"><span class="hs-identifier hs-var hs-var">parsecFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(FlagName, Bool)] -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#mkFlagAssignment"><span class="hs-identifier hs-var">mkFlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">([(FlagName, Bool)] -&gt; FlagAssignment)
-&gt; m [(FlagName, Bool)] -&gt; m FlagAssignment
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span>
</span><span id="line-276"></span><span>                       </span><span class="annot"><span class="annottext">m (FlagName, Bool) -&gt; m () -&gt; m [(FlagName, Bool)]
forall (m :: * -&gt; *) a sep. Alternative m =&gt; m a -&gt; m sep -&gt; m [a]
</span><a href="Distribution.Compat.Parsing.html#sepBy"><span class="hs-identifier hs-var">P.sepBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">m (FlagName, Bool)
</span><a href="#local-6989586621679638801"><span class="hs-identifier hs-var">onFlag</span></a></span><span> </span><span class="annot"><span class="annottext">m (FlagName, Bool) -&gt; m (FlagName, Bool) -&gt; m (FlagName, Bool)
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#%3C%7C%3E"><span class="hs-operator hs-var">&lt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m (FlagName, Bool)
</span><a href="#local-6989586621679638799"><span class="hs-identifier hs-var">offFlag</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">m ()
forall (m :: * -&gt; *). CharParsing m =&gt; m ()
</span><a href="Distribution.Compat.CharParsing.html#skipSpaces1"><span class="hs-identifier hs-var">P.skipSpaces1</span></a></span><span>
</span><span id="line-277"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-278"></span><span>    </span><span id="local-6989586621679638801"><span class="annot"><span class="annottext">onFlag :: m (FlagName, Bool)
</span><a href="#local-6989586621679638801"><span class="hs-identifier hs-var hs-var">onFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-279"></span><span>        </span><span class="annot"><span class="annottext">Char
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; Char -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#char"><span class="hs-identifier hs-var">P.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span>
</span><span id="line-280"></span><span>        </span><span id="local-6989586621679638790"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638790"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m FlagName
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-281"></span><span>        </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; m (FlagName, Bool)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638790"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>
</span><span id="line-282"></span><span>    </span><span id="local-6989586621679638799"><span class="annot"><span class="annottext">offFlag :: m (FlagName, Bool)
</span><a href="#local-6989586621679638799"><span class="hs-identifier hs-var hs-var">offFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-283"></span><span>        </span><span class="annot"><span class="annottext">Char
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; Char -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#char"><span class="hs-identifier hs-var">P.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-284"></span><span>        </span><span id="local-6989586621679638783"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638783"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m FlagName
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-285"></span><span>        </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; m (FlagName, Bool)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638783"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>
</span><span id="line-286"></span><span>
</span><span id="line-287"></span><span class="hs-comment">-- | Parse a non-empty flag assignment</span><span>
</span><span id="line-288"></span><span class="hs-comment">--</span><span>
</span><span id="line-289"></span><span class="hs-comment">-- The flags have to explicitly start with minus or plus.</span><span>
</span><span id="line-290"></span><span class="hs-comment">--</span><span>
</span><span id="line-291"></span><span class="hs-comment">-- @since 3.4.0.0</span><span>
</span><span id="line-292"></span><span id="local-6989586621679638782"><span class="annot"><a href="Distribution.Types.Flag.html#parsecFlagAssignmentNonEmpty"><span class="hs-identifier hs-type">parsecFlagAssignmentNonEmpty</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#CabalParsing"><span class="hs-identifier hs-type">CabalParsing</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679638782"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679638782"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span><span>
</span><span id="line-293"></span><span id="parsecFlagAssignmentNonEmpty"><span class="annot"><span class="annottext">parsecFlagAssignmentNonEmpty :: forall (m :: * -&gt; *). CabalParsing m =&gt; m FlagAssignment
</span><a href="Distribution.Types.Flag.html#parsecFlagAssignmentNonEmpty"><span class="hs-identifier hs-var hs-var">parsecFlagAssignmentNonEmpty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(FlagName, Bool)] -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#mkFlagAssignment"><span class="hs-identifier hs-var">mkFlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">([(FlagName, Bool)] -&gt; FlagAssignment)
-&gt; (NonEmpty (FlagName, Bool) -&gt; [(FlagName, Bool)])
-&gt; NonEmpty (FlagName, Bool)
-&gt; FlagAssignment
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">NonEmpty (FlagName, Bool) -&gt; [(FlagName, Bool)]
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#toList"><span class="hs-identifier hs-var">toList</span></a></span><span> </span><span class="annot"><span class="annottext">(NonEmpty (FlagName, Bool) -&gt; FlagAssignment)
-&gt; m (NonEmpty (FlagName, Bool)) -&gt; m FlagAssignment
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span>
</span><span id="line-294"></span><span>    </span><span class="annot"><span class="annottext">m (FlagName, Bool) -&gt; m () -&gt; m (NonEmpty (FlagName, Bool))
forall (m :: * -&gt; *) a sep.
Alternative m =&gt;
m a -&gt; m sep -&gt; m (NonEmpty a)
</span><a href="Distribution.Compat.Parsing.html#sepByNonEmpty"><span class="hs-identifier hs-var">P.sepByNonEmpty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">m (FlagName, Bool)
</span><a href="#local-6989586621679638765"><span class="hs-identifier hs-var">onFlag</span></a></span><span> </span><span class="annot"><span class="annottext">m (FlagName, Bool) -&gt; m (FlagName, Bool) -&gt; m (FlagName, Bool)
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#%3C%7C%3E"><span class="hs-operator hs-var">&lt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m (FlagName, Bool)
</span><a href="#local-6989586621679638764"><span class="hs-identifier hs-var">offFlag</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">m ()
forall (m :: * -&gt; *). CharParsing m =&gt; m ()
</span><a href="Distribution.Compat.CharParsing.html#skipSpaces1"><span class="hs-identifier hs-var">P.skipSpaces1</span></a></span><span>
</span><span id="line-295"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-296"></span><span>    </span><span id="local-6989586621679638765"><span class="annot"><span class="annottext">onFlag :: m (FlagName, Bool)
</span><a href="#local-6989586621679638765"><span class="hs-identifier hs-var hs-var">onFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-297"></span><span>        </span><span class="annot"><span class="annottext">Char
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; Char -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#char"><span class="hs-identifier hs-var">P.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span>
</span><span id="line-298"></span><span>        </span><span id="local-6989586621679638757"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638757"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m FlagName
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-299"></span><span>        </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; m (FlagName, Bool)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638757"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>
</span><span id="line-300"></span><span>    </span><span id="local-6989586621679638764"><span class="annot"><span class="annottext">offFlag :: m (FlagName, Bool)
</span><a href="#local-6989586621679638764"><span class="hs-identifier hs-var hs-var">offFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-301"></span><span>        </span><span class="annot"><span class="annottext">Char
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; Char -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#char"><span class="hs-identifier hs-var">P.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-302"></span><span>        </span><span id="local-6989586621679638750"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638750"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m FlagName
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-303"></span><span>        </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; m (FlagName, Bool)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638750"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>
</span><span id="line-304"></span><span>
</span><span id="line-305"></span><span class="hs-comment">-- | Show flag assignment.</span><span>
</span><span id="line-306"></span><span class="hs-comment">--</span><span>
</span><span id="line-307"></span><span class="hs-comment">-- @since 3.4.0.0</span><span>
</span><span id="line-308"></span><span class="annot"><a href="Distribution.Types.Flag.html#showFlagAssignment"><span class="hs-identifier hs-type">showFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-309"></span><span id="showFlagAssignment"><span class="annot"><span class="annottext">showFlagAssignment :: FlagAssignment -&gt; String
</span><a href="Distribution.Types.Flag.html#showFlagAssignment"><span class="hs-identifier hs-var hs-var">showFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; String)
-&gt; (FlagAssignment -&gt; Doc) -&gt; FlagAssignment -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; Doc
</span><a href="Distribution.Types.Flag.html#dispFlagAssignment"><span class="hs-identifier hs-var">dispFlagAssignment</span></a></span><span>
</span><span id="line-310"></span><span>
</span><span id="line-311"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-312"></span><span class="hs-comment">-- Legacy: without requiring +</span><span>
</span><span id="line-313"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-314"></span><span>
</span><span id="line-315"></span><span class="hs-comment">-- | We need this as far as we support custom setups older than 2.2.0.0</span><span>
</span><span id="line-316"></span><span class="hs-comment">--</span><span>
</span><span id="line-317"></span><span class="hs-comment">-- @since 3.4.0.0</span><span>
</span><span id="line-318"></span><span class="annot"><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment"><span class="hs-identifier hs-type">legacyShowFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-319"></span><span id="legacyShowFlagAssignment"><span class="annot"><span class="annottext">legacyShowFlagAssignment :: FlagAssignment -&gt; String
</span><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment"><span class="hs-identifier hs-var hs-var">legacyShowFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-320"></span><span>    </span><span class="annot"><span class="annottext">Doc -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; String)
-&gt; (FlagAssignment -&gt; Doc) -&gt; FlagAssignment -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span>  </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#hsep"><span class="hs-identifier hs-var">Disp.hsep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc)
-&gt; (FlagAssignment -&gt; [Doc]) -&gt; FlagAssignment -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; [String] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier hs-var">Disp.text</span></a></span><span> </span><span class="annot"><span class="annottext">([String] -&gt; [Doc])
-&gt; (FlagAssignment -&gt; [String]) -&gt; FlagAssignment -&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; [String]
</span><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment%27"><span class="hs-identifier hs-var">legacyShowFlagAssignment'</span></a></span><span>
</span><span id="line-321"></span><span>
</span><span id="line-322"></span><span class="hs-comment">-- | @since 3.4.0.0</span><span>
</span><span id="line-323"></span><span class="annot"><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment%27"><span class="hs-identifier hs-type">legacyShowFlagAssignment'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-324"></span><span id="legacyShowFlagAssignment%27"><span class="annot"><span class="annottext">legacyShowFlagAssignment' :: FlagAssignment -&gt; [String]
</span><a href="Distribution.Types.Flag.html#legacyShowFlagAssignment%27"><span class="hs-identifier hs-var hs-var">legacyShowFlagAssignment'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((FlagName, Bool) -&gt; String) -&gt; [(FlagName, Bool)] -&gt; [String]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; String
</span><a href="Distribution.Types.Flag.html#legacyShowFlagValue"><span class="hs-identifier hs-var">legacyShowFlagValue</span></a></span><span> </span><span class="annot"><span class="annottext">([(FlagName, Bool)] -&gt; [String])
-&gt; (FlagAssignment -&gt; [(FlagName, Bool)])
-&gt; FlagAssignment
-&gt; [String]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FlagAssignment -&gt; [(FlagName, Bool)]
</span><a href="Distribution.Types.Flag.html#unFlagAssignment"><span class="hs-identifier hs-var">unFlagAssignment</span></a></span><span>
</span><span id="line-325"></span><span>
</span><span id="line-326"></span><span class="hs-comment">-- | @since 3.4.0.0</span><span>
</span><span id="line-327"></span><span class="annot"><a href="Distribution.Types.Flag.html#legacyShowFlagValue"><span class="hs-identifier hs-type">legacyShowFlagValue</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Flag.html#FlagName"><span class="hs-identifier hs-type">FlagName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-328"></span><span id="legacyShowFlagValue"><span class="annot"><span class="annottext">legacyShowFlagValue :: (FlagName, Bool) -&gt; String
</span><a href="Distribution.Types.Flag.html#legacyShowFlagValue"><span class="hs-identifier hs-var hs-var">legacyShowFlagValue</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638747"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638747"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span>       </span><span class="annot"><span class="annottext">FlagName -&gt; String
</span><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-var">unFlagName</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638747"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-329"></span><span class="annot"><a href="Distribution.Types.Flag.html#legacyShowFlagValue"><span class="hs-identifier hs-var">legacyShowFlagValue</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679638746"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638746"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">FlagName -&gt; String
</span><a href="Distribution.Types.Flag.html#unFlagName"><span class="hs-identifier hs-var">unFlagName</span></a></span><span> </span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638746"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-330"></span><span>
</span><span id="line-331"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-332"></span><span class="hs-comment">-- We need this as far as we support custom setups older than 2.2.0.0</span><span>
</span><span id="line-333"></span><span class="hs-comment">--</span><span>
</span><span id="line-334"></span><span class="hs-comment">-- @since 3.4.0.0</span><span>
</span><span id="line-335"></span><span id="local-6989586621679638745"><span class="annot"><a href="Distribution.Types.Flag.html#legacyParsecFlagAssignment"><span class="hs-identifier hs-type">legacyParsecFlagAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#CabalParsing"><span class="hs-identifier hs-type">CabalParsing</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679638745"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679638745"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Flag.html#FlagAssignment"><span class="hs-identifier hs-type">FlagAssignment</span></a></span></span><span>
</span><span id="line-336"></span><span id="legacyParsecFlagAssignment"><span class="annot"><span class="annottext">legacyParsecFlagAssignment :: forall (m :: * -&gt; *). CabalParsing m =&gt; m FlagAssignment
</span><a href="Distribution.Types.Flag.html#legacyParsecFlagAssignment"><span class="hs-identifier hs-var hs-var">legacyParsecFlagAssignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(FlagName, Bool)] -&gt; FlagAssignment
</span><a href="Distribution.Types.Flag.html#mkFlagAssignment"><span class="hs-identifier hs-var">mkFlagAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">([(FlagName, Bool)] -&gt; FlagAssignment)
-&gt; m [(FlagName, Bool)] -&gt; m FlagAssignment
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span>
</span><span id="line-337"></span><span>                       </span><span class="annot"><span class="annottext">m (FlagName, Bool) -&gt; m () -&gt; m [(FlagName, Bool)]
forall (m :: * -&gt; *) a sep. Alternative m =&gt; m a -&gt; m sep -&gt; m [a]
</span><a href="Distribution.Compat.Parsing.html#sepBy"><span class="hs-identifier hs-var">P.sepBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">m (FlagName, Bool)
</span><a href="#local-6989586621679638732"><span class="hs-identifier hs-var">onFlag</span></a></span><span> </span><span class="annot"><span class="annottext">m (FlagName, Bool) -&gt; m (FlagName, Bool) -&gt; m (FlagName, Bool)
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#%3C%7C%3E"><span class="hs-operator hs-var">&lt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m (FlagName, Bool)
</span><a href="#local-6989586621679638731"><span class="hs-identifier hs-var">offFlag</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">m ()
forall (m :: * -&gt; *). CharParsing m =&gt; m ()
</span><a href="Distribution.Compat.CharParsing.html#skipSpaces1"><span class="hs-identifier hs-var">P.skipSpaces1</span></a></span><span>
</span><span id="line-338"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-339"></span><span>    </span><span id="local-6989586621679638732"><span class="annot"><span class="annottext">onFlag :: m (FlagName, Bool)
</span><a href="#local-6989586621679638732"><span class="hs-identifier hs-var hs-var">onFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-340"></span><span>        </span><span class="annot"><span class="annottext">Maybe Char
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m Char -&gt; m (Maybe Char)
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f (Maybe a)
</span><a href="../../base/src/Control.Applicative.html#optional"><span class="hs-identifier hs-var">P.optional</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; Char -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#char"><span class="hs-identifier hs-var">P.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span class="hs-special">)</span><span>
</span><span id="line-341"></span><span>        </span><span id="local-6989586621679638722"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638722"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m FlagName
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-342"></span><span>        </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; m (FlagName, Bool)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638722"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>
</span><span id="line-343"></span><span>    </span><span id="local-6989586621679638731"><span class="annot"><span class="annottext">offFlag :: m (FlagName, Bool)
</span><a href="#local-6989586621679638731"><span class="hs-identifier hs-var hs-var">offFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-344"></span><span>        </span><span class="annot"><span class="annottext">Char
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; m Char
forall (m :: * -&gt; *). CharParsing m =&gt; Char -&gt; m Char
</span><a href="Distribution.Compat.CharParsing.html#char"><span class="hs-identifier hs-var">P.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-345"></span><span>        </span><span id="local-6989586621679638715"><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638715"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m FlagName
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-346"></span><span>        </span><span class="annot"><span class="annottext">(FlagName, Bool) -&gt; m (FlagName, Bool)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FlagName
</span><a href="#local-6989586621679638715"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span>
</span><span id="line-347"></span></pre></body></html>